package com.itheima.api;

import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.itheima.mapper.PmsProductAttributeMapper;
import com.itheima.pojo.db.PmsProductAttribute;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

@DubboService
public class PmsProductAttributeApiImpl implements PmsProductAttributeApi {
    @Autowired
    private PmsProductAttributeMapper pmsProductAttributeMapper;

    @Override
    public List<PmsProductAttribute> selectList(List<Long> productAttributeIds) {
        return pmsProductAttributeMapper.selectList(new LambdaQueryWrapper<PmsProductAttribute>().in(ObjectUtil.isNotEmpty(productAttributeIds), PmsProductAttribute::getId, productAttributeIds));
    }

    @Override
    public void insert(PmsProductAttribute pmsProductAttribute) {
        pmsProductAttributeMapper.insert(pmsProductAttribute);
    }

    @Override
    public PmsProductAttribute selectOne(Long id) {
        return pmsProductAttributeMapper.selectById(id);
    }

    @Override
    public int delete(List<Long> ids) {
        return pmsProductAttributeMapper.delete(new LambdaQueryWrapper<PmsProductAttribute>().in(PmsProductAttribute::getId,ids));
    }

    @Override
    public IPage<PmsProductAttribute> selectPage(IPage<PmsProductAttribute> page, Integer type, Long cid) {
        return pmsProductAttributeMapper.selectPage(page,new LambdaQueryWrapper<PmsProductAttribute>().eq(PmsProductAttribute::getProductAttributeCategoryId,cid)
                .eq(PmsProductAttribute::getType,type));
    }

    @Override
    public int updateById(PmsProductAttribute pmsProductAttribute) {
        return pmsProductAttributeMapper.updateById(pmsProductAttribute);
    }
}
